package com.yuandian.business.monitor.mapper;

import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.yuandian.api.business_monitor.po.QueryBusinessOverviewParams;
import com.yuandian.api.business_monitor.po.SystemOverviewParams;
import com.yuandian.api.business_monitor.vo.BusinessAvgAndPeakVo;
import com.yuandian.api.business_monitor.vo.SystemOverviewVo;
import com.yuandian.api.business_monitor.vo.SystemReqTrendVo;
import com.yuandian.po.BaseSearch;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;

import java.util.List;

/**
 * 说明：应用系统mapper
 *
 * @Author yanjun
 * @Date 2020/9/21 14:41
 */
@Mapper
public interface AppSystemMapper {


	/**
	 * 系统健康度,平均处理时长,告警请求量趋势图
	 * 应用系统-查询系统趋势图数据总览
	 *
	 * @param params 查询参数
	 * @return系统健康度,平均处理时长,告警请求量趋势图Vo
	 */
	List<SystemReqTrendVo> systemTrendList(@Param("params") SystemOverviewParams params);


	/**
	 * 查询系统访问数据总览
	 *
	 * @param params 查询参数
	 * @return 系统数据总览
	 */
	IPage<SystemOverviewVo> querySystemOverview(Page<Object> tPage, @Param("params") SystemOverviewParams params);


	/**
	 * 应用系统-查询系统业务统计数据
	 *
	 * @param tPage 分页参数
	 * @param params 查询参数
	 * @return
	 */
	IPage<SystemOverviewVo> querySystemStatisticsDetail(@Param("tPage") Page<Object> tPage, @Param("params") SystemOverviewParams params);
	/**
	 * 查询平均指标值
	 * @param params	请求参数
	 * @return 结果集
	 */
	int queryAvgIndicatorValue(@Param("params") SystemOverviewParams params);

	/**
	 * 查询峰值
	 * @param params	参数对象
	 * @param scale		刻度值
	 * @param scaleType	刻度类型
	 * @return	结果集
	 */
	BusinessAvgAndPeakVo queryPeakValue(@Param("params") SystemOverviewParams params,
										@Param("scale") int scale,
										@Param("scaleType") String scaleType,
										@Param("baseSearch") BaseSearch baseSearch);

}
